package com.ruoyi.gateway.mapper;

import java.util.List;
import com.ruoyi.gateway.domain.MessagePropertyMap;
import org.apache.ibatis.annotations.Param;

/**
 * 消息属性映射Mapper接口
 *
 * @author 白向阳
 * @date 2025-09-28
 */
public interface MessagePropertyMapMapper
{

    /**
     * 查询所有属性映射
     */
    List<MessagePropertyMap> selectAll();

    /**
     * 根据设备属性路径查询
     */
    MessagePropertyMap selectByDevicePath(@Param("direction") String direction,
                                          @Param("devicePropertyPath") String devicePropertyPath);

    /**
     * 根据平台属性路径查询
     */
    MessagePropertyMap selectByPlatformPath(@Param("direction") String direction,
                                            @Param("platformPropertyPath") String platformPropertyPath);
    /**
     * 查询消息属性映射
     *
     * @param id 消息属性映射主键
     * @return 消息属性映射
     */
    public MessagePropertyMap selectMessagePropertyMapById(Long id);

    /**
     * 查询消息属性映射列表
     *
     * @param messagePropertyMap 消息属性映射
     * @return 消息属性映射集合
     */
    public List<MessagePropertyMap> selectMessagePropertyMapList(MessagePropertyMap messagePropertyMap);

    /**
     * 新增消息属性映射
     *
     * @param messagePropertyMap 消息属性映射
     * @return 结果
     */
    public int insertMessagePropertyMap(MessagePropertyMap messagePropertyMap);

    /**
     * 修改消息属性映射
     *
     * @param messagePropertyMap 消息属性映射
     * @return 结果
     */
    public int updateMessagePropertyMap(MessagePropertyMap messagePropertyMap);

    /**
     * 删除消息属性映射
     *
     * @param id 消息属性映射主键
     * @return 结果
     */
    public int deleteMessagePropertyMapById(Long id);

    /**
     * 批量删除消息属性映射
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMessagePropertyMapByIds(Long[] ids);


}
